package com.huike.clues.mapper;

import com.huike.common.core.domain.entity.SysDeptDTO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface SysDeptMapper {

    List<SysDeptDTO> selectDeptList(SysDeptDTO dept);

    SysDeptDTO selectDeptById(Long deptId);

    List<Integer> selectDeptListByRoleId(Long roleId, boolean deptCheckStrictly);

    SysDeptDTO checkDeptNameUnique(String deptName, Long parentId);

    int insertDept(SysDeptDTO dept);

    int selectNormalChildrenDeptById(Long deptId);

    List<SysDeptDTO> selectChildrenDeptById(Long deptId);

    void updateDeptChildren(List<SysDeptDTO> children);

    int updateDept(SysDeptDTO dept);

    void updateDeptStatus(SysDeptDTO dept);

    int hasChildByDeptId(Long deptId);

    int checkDeptExistUser(Long deptId);

    int deleteDeptById(Long deptId);

    List<SysDeptDTO> selectDeptAndUserList();

}
